Skip to content

[true-async] drop HTTP/3 listener#744

Merged
MDA2AV merged 5 commits into
MDA2AV:mainfrom
EdmondDantes:fix-h3-startup-v2
May 20, 2026
Merged

[true-async] drop HTTP/3 listener#744
MDA2AV merged 5 commits into
MDA2AV:mainfrom
EdmondDantes:fix-h3-startup-v2

Conversation

@EdmondDantes
Copy link
Copy Markdown
Contributor

The v0.6.3 benchmark run (after #742) skipped limited-conn for both 512c and 4096c:

=== true-async-server / limited-conn / 512c (tool=gcannon) ===
[info] waiting for server...
[warn] true-async-server did not come up for limited-conn; skipping

No result was recorded, so the leaderboard shows short-lived as not participating.

Cause

entry.php registered an HTTP/3 QUIC listener on UDP 8443. meta.json subscribes to no h3 profile, so that listener serves nothing — but its UDP bind is an extra startup step that races with the previous container's teardown on back-to-back profile runs, intermittently making HttpServer::start() fail before the health probe succeeds. baseline and pipelined (earlier in the run) came up; limited-conn (3rd) lost the race twice.

Fix

Drop the H3 listener and the dead H3_PORT / H3_DISABLE env plumbing. The arena image never benchmarks HTTP/3 — removing the listener eliminates the failure vector and trims startup work.

One-file change; branched off current main (post-#742).

…limited-conn

The v0.6.3 benchmark run skipped the short-lived (limited-conn) profile
with `[warn] true-async-server did not come up for limited-conn` for
both 512c and 4096c — the server container never passed the health
probe, so no result was recorded and the leaderboard shows short-lived
as "not participating".

entry.php registered an HTTP/3 QUIC listener on UDP 8443 whenever
H3_DISABLE != "1" (the benchmark runner never sets it). meta.json
subscribes to no h3 profile, so that listener serves nothing — but its
UDP bind is an extra startup step that races with the previous
container's teardown on back-to-back profile runs, intermittently
making HttpServer::start() fail before the probe succeeds. baseline and
pipelined (earlier in the run) came up; limited-conn (3rd) lost twice.

Remove the H3 listener and the dead H3_PORT / H3_DISABLE env plumbing.
The arena image never benchmarks HTTP/3.
@EdmondDantes
Copy link
Copy Markdown
Contributor Author

/benchmark -f true-async-server --save

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

@EdmondDantes EdmondDantes changed the title true-async-server: drop HTTP/3 listener — fixes short-lived "did not come up" [true-async] drop HTTP/3 listener May 19, 2026
@EdmondDantes EdmondDantes marked this pull request as draft May 19, 2026 22:09
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: true-async-server | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 2,172,312 6606.9% 184MiB +3.5% +0.5%
baseline 4096 2,232,923 5689.7% 220MiB +1.0% ~0%
pipelined 512 8,522,868 6843.4% 148MiB +2.9% -2.0%
pipelined 4096 2,290,917 5977.7% 213MiB +3.3% ~0%
json-comp 4096 472,695 6242.3% 252MiB +1.6% -0.8%
json-comp 16384 457,029 6518.1% 488MiB +3.5% -0.8%
json-tls 4096 789,834 6217.1% 616MiB +0.5% -15.8%
upload 32 2,580 1859.3% 298MiB ~0% -5.7%
upload 256 3,034 3746.4% 574MiB -0.6% +15.5%
api-4 256 56,154 395.2% 44MiB -2.6% +2.3%
api-16 1024 153,505 1577.2% 78MiB ~0% ~0%
static 1024 596,048 3160.9% 175MiB -0.4% -0.6%
static 4096 624,257 3184.9% 249MiB -0.8% -0.8%
static 6800 603,951 3152.6% 320MiB -1.5% +0.3%
async-db 1024 246,370 4840.1% 248MiB -0.7% +0.8%
fortunes 1024 88,951 6336.1% 221MiB ~0% -0.5%
baseline-h2 256 5,116,675 7958.2% 224MiB +11.8% -1.3%
baseline-h2 1024 3,263,556 7192.9% 506MiB +8.4% +0.4%
static-h2 256 1,047,794 6557.9% 540MiB +1.7% -16.9%
static-h2 1024 820,972 6224.8% 2.4GiB +0.9% +20.0%
baseline-h2c 256 6,042,081 7119.3% 242MiB +5.8% -0.8%
baseline-h2c 1024 4,161,641 7336.2% 480MiB +4.6% ~0%
baseline-h2c 4096 3,796,821 6912.4% 1.4GiB +11.0% -12.5%
json-h2c 1024 1,238,210 7369.7% 312MiB +0.4% +7.6%
json-h2c 4096 1,206,688 7206.3% 780MiB ~0% +0.4%
Full log
time to 1st byte:     1.14ms     42.11ms     15.08ms      9.55ms    60.25%
req/s           :     742.29     2648.57     1222.16      332.59    73.83%
[info] CPU 7292.8% | Mem 327MiB

=== Best: 1238210 req/s (CPU: 7369.7%, Mem: 312MiB) ===
[info] saved results/json-h2c/1024/true-async-server.json
httparena-bench-true-async-server
httparena-bench-true-async-server

==============================================
=== true-async-server / json-h2c / 4096c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
Application protocol: h2c
11Main benchmark duration is started for thread #Warm-up phase is over for thread #Warm-up phase is over for thread #32.

.9
.Main benchmark duration is started for thread #11.

38.
14Main benchmark duration is started for thread #42.
.
39Main benchmark duration is started for thread #56.
.
.Warm-up phase is over for thread #Main benchmark duration is started for thread #743..
.
1Main benchmark duration is started for thread #55.


52Main benchmark duration is started for thread #5.
.
.2
.Warm-up phase is over for thread #49.

.
2.
21.
20.
62.
Process Request Failure:2
Process Request Failure:2
Process Request Failure:2
38. Stopping all clients.
36. Stopping all clients.
. Stopping all clients.. Stopping all clients.

. Stopping all clients.
. Stopping all clients.6Stopped all clients for thread #

55Main benchmark duration is over for thread #12. Stopping all clients.
8Stopped all clients for thread #1
12Main benchmark duration is over for thread #Stopped all clients for thread #592

48. Stopping all clients.. Stopping all clients.

. Stopping all clients.

finished in 5.10s, 1214564.80 req/s, 4.00GB/s
requests: 6072827 total, 6203896 started, 6072827 done, 6072824 succeeded, 3 failed, 3 errored, 0 timeout
status codes: 6072826 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.00GB (21471822548) total, 11.63MB (12194804) headers (space savings 94.72%), 19.88GB (21350032490) data
                     min         max         mean         sd        +/- sd
time for request:      155us    439.56ms    107.91ms     29.37ms    86.61%
time for connect:       16us      6.66ms      2.40ms      1.85ms    57.84%
time to 1st byte:     9.38ms    443.89ms    156.31ms     70.55ms    75.49%
req/s           :     217.43     1526.41      296.94       44.15    72.09%
[info] CPU 6698.0% | Mem 702MiB

[run 2/3]
starting benchmark...
4.
18Main benchmark duration is started for thread #29.
.Warm-up phase is over for thread #
19.
.43Main benchmark duration is started for thread #39.

.
Application protocol: h2c
15.
21Main benchmark duration is started for thread #54.
2Warm-up phase is over for thread #.
31.
50..Warm-up phase is over for thread #

46.
56.Main benchmark duration is started for thread #7.

45.
37.
Process Request Failure:2
19
50. Stopping all clients.
. Stopping all clients.
54. Stopping all clients.
2. Stopping all clients.

11

finished in 5.08s, 1225995.20 req/s, 4.04GB/s
requests: 6129977 total, 6261048 started, 6129977 done, 6129976 succeeded, 1 failed, 1 errored, 0 timeout
status codes: 6129976 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.19GB (21675151084) total, 11.74MB (12309104) headers (space savings 94.72%), 20.07GB (21552227757) data
                     min         max         mean         sd        +/- sd
time for request:     1.40ms    427.24ms    104.95ms     28.37ms    87.76%
time for connect:       18us      9.16ms      2.77ms      2.01ms    57.74%
time to 1st byte:     3.31ms    425.93ms     85.33ms     59.80ms    79.57%
req/s           :     236.61      425.18      299.31       37.11    71.36%
[info] CPU 7206.3% | Mem 780MiB

[run 3/3]
starting benchmark...
37.
Application protocol: h2c

43.
28.Main benchmark duration is started for thread #48.
45Main benchmark duration is started for thread #28.

23.
30Main benchmark duration is started for thread #23.
.
.
47.Main benchmark duration is started for thread #34.

26.
11.
Process Request Failure:2

37. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #12. Stopping all clients.

14. Stopping all clients.
16
2542. Stopping all clients.

. Stopping all clients.Stopped all clients for thread #11


finished in 5.09s, 1226584.00 req/s, 4.04GB/s
requests: 6132921 total, 6263992 started, 6132921 done, 6132920 succeeded, 1 failed, 1 errored, 0 timeout
status codes: 6132920 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.20GB (21684650086) total, 11.74MB (12314992) headers (space savings 94.72%), 20.08GB (21561667879) data
                     min         max         mean         sd        +/- sd
time for request:     1.53ms    253.60ms    104.38ms     24.84ms    86.46%
time for connect:       17us      9.31ms      3.27ms      2.43ms    56.37%
time to 1st byte:     3.46ms    257.70ms     81.78ms     48.92ms    66.80%
req/s           :     192.92      447.76      299.39       30.49    69.02%
[info] CPU 6917.7% | Mem 810MiB

=== Best: 1206688 req/s (CPU: 7206.3%, Mem: 780MiB) ===
[info] saved results/json-h2c/4096/true-async-server.json
httparena-bench-true-async-server
httparena-bench-true-async-server
[info] skip: true-async-server does not subscribe to baseline-h3
[info] skip: true-async-server does not subscribe to static-h3
[info] skip: true-async-server does not subscribe to gateway-64
[info] skip: true-async-server does not subscribe to gateway-h3
[info] skip: true-async-server does not subscribe to production-stack
[info] skip: true-async-server does not subscribe to unary-grpc
[info] skip: true-async-server does not subscribe to unary-grpc-tls
[info] skip: true-async-server does not subscribe to stream-grpc
[info] skip: true-async-server does not subscribe to stream-grpc-tls
[info] skip: true-async-server does not subscribe to echo-ws
[info] skip: true-async-server does not subscribe to echo-ws-pipeline
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-tls-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

Picks up true-async-server v0.6.4 — fixes the HTTP/1 pipelining
use-after-free crash that killed the worker on the pipelined/4096c
profile.
@EdmondDantes
Copy link
Copy Markdown
Contributor Author

/benchmark -f true-async-server

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: true-async-server | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 2,146,748 6749.5% 182MiB +2.2% -0.5%
baseline 4096 2,214,669 6031.3% 217MiB +0.1% -1.4%
pipelined 512 8,758,655 6597.5% 145MiB +5.8% -4.0%
pipelined 4096 2,298,443 6073.8% 244MiB +3.7% +14.6%
limited-conn 512 1,611,994 6138.6% 156MiB NEW NEW
limited-conn 4096 1,783,433 6464.5% 192MiB NEW NEW
json 4096 982,134 6487.1% 264MiB -1.2% +1.9%
json-comp 512 444,920 5916.8% 173MiB -1.3% -0.6%
json-comp 4096 458,495 6458.0% 259MiB -1.5% +2.0%
json-comp 16384 445,488 6252.0% 494MiB +0.9% +0.4%
json-tls 4096 789,896 6225.0% 732MiB +0.5% ~0%
upload 32 2,590 1866.6% 297MiB +0.3% -6.0%
upload 256 3,002 3593.7% 545MiB -1.7% +9.7%
api-4 256 57,245 397.6% 43MiB -0.8% ~0%
api-16 1024 152,028 1573.9% 77MiB -0.9% -1.3%
static 1024 597,302 3157.1% 175MiB -0.2% -0.6%
static 4096 620,715 3203.5% 249MiB -1.3% -0.8%
static 6800 607,036 3048.8% 316MiB -1.0% -0.9%
async-db 1024 250,848 4951.2% 249MiB +1.1% +1.2%
fortunes 1024 88,765 6574.0% 228MiB -0.2% +2.7%
baseline-h2 256 4,327,463 7506.2% 224MiB -5.5% -1.3%
baseline-h2 1024 3,087,177 7301.0% 504MiB +2.5% ~0%
static-h2 256 1,028,601 6637.7% 611MiB -0.2% -6.0%
static-h2 1024 833,245 6527.8% 2.2GiB +2.4% +10.0%
baseline-h2c 256 5,802,161 7488.5% 241MiB +1.6% -1.2%
baseline-h2c 1024 4,306,006 7380.9% 568MiB +8.2% +18.3%
baseline-h2c 4096 3,826,658 7475.1% 1.5GiB +11.8% -6.3%
json-h2c 1024 1,248,850 7359.7% 315MiB +1.3% +8.6%
json-h2c 4096 1,217,050 7006.1% 812MiB +0.8% +4.5%
Full log
29.
.

.
.

.
51Main benchmark duration is started for thread #41.
.
13Main benchmark duration is started for thread #14.
.
21.
23.

25Main benchmark duration is over for thread #3. Stopping all clients.
. Stopping all clients.
. Stopping all clients.
. Stopping all clients.
2226Stopped all clients for thread #53



finished in 5.08s, 1216174.80 req/s, 4.00GB/s
requests: 6080874 total, 6211946 started, 6080874 done, 6080874 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 6080874 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.02GB (21500060836) total, 11.65MB (12210900) headers (space savings 94.72%), 19.91GB (21378119772) data
                     min         max         mean         sd        +/- sd
time for request:    41.32ms    424.57ms    107.32ms     24.73ms    85.58%
time for connect:       15us      8.00ms      2.33ms      1.75ms    59.67%
time to 1st byte:    58.05ms    424.31ms    159.36ms     51.46ms    69.46%
req/s           :     223.77      435.15      296.81       42.83    68.02%
[info] CPU 6826.2% | Mem 695MiB

[run 2/3]
starting benchmark...


Application protocol: h2c


20.Warm-up phase is over for thread #
56.
5224Main benchmark duration is started for thread #56.
20
.Main benchmark duration is started for thread #50.

.
.Warm-up phase is over for thread #
51Warm-up phase is over for thread #.
.


.Main benchmark duration is started for thread #Warm-up phase is over for thread #
13Main benchmark duration is started for thread #59.
35..


11.
9.

.
.
.
Process Request Failure:2
18. Stopping all clients.
50. Stopping all clients.
25. Stopping all clients.
52
22
. Stopping all clients.
32. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #11


32
5
51Main benchmark duration is over for thread #. Stopping all clients.
30. Stopping all clients.
14
. Stopping all clients.

finished in 5.10s, 1230189.40 req/s, 4.05GB/s
requests: 6150948 total, 6282019 started, 6150948 done, 6150947 succeeded, 1 failed, 1 errored, 0 timeout
status codes: 6150947 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.25GB (21747485974) total, 11.78MB (12351046) headers (space savings 94.72%), 20.14GB (21624143227) data
                     min         max         mean         sd        +/- sd
time for request:     2.46ms    250.00ms    104.49ms     27.81ms    82.26%
time for connect:       14us      7.85ms      3.06ms      2.06ms    57.37%
time to 1st byte:     8.86ms    241.35ms     83.59ms     50.92ms    69.12%
req/s           :     230.19      415.96      300.31       37.02    67.14%
[info] CPU 7200.7% | Mem 777MiB

[run 3/3]
starting benchmark...
40.
Application protocol: h2cMain benchmark duration is started for thread #
61.
57Main benchmark duration is started for thread #33.
.
5011..
49.
.
21.
1119..13Main benchmark duration is started for thread #.Warm-up phase is over for thread #
20.53.

17.Main benchmark duration is started for thread #4920
...
16Main benchmark duration is started for thread #


14Main benchmark duration is started for thread #Main benchmark duration is started for thread #.5213..
.Main benchmark duration is started for thread #9.


719.
6.
.
.
15.
.Main benchmark duration is started for thread #63.

31Main benchmark duration is started for thread #58.
.
. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #4. Stopping all clients.

13
19Stopped all clients for thread #48

7. Stopping all clients.

8. Stopping all clients.
6Main benchmark duration is over for thread #14Stopped all clients for thread #
7
. Stopping all clients.
31. Stopping all clients.

finished in 5.10s, 1241391.60 req/s, 4.09GB/s
requests: 6206958 total, 6338030 started, 6206958 done, 6206958 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 6206958 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.44GB (21947293460) total, 11.89MB (12463068) headers (space savings 94.72%), 20.32GB (21822830716) data
                     min         max         mean         sd        +/- sd
time for request:     1.84ms    198.56ms    101.87ms     20.09ms    81.45%
time for connect:       17us      6.65ms      2.54ms      1.63ms    55.08%
time to 1st byte:     3.34ms    198.80ms     68.80ms     39.43ms    68.55%
req/s           :     223.84      422.37      302.97       39.11    64.58%
[info] CPU 7006.1% | Mem 812MiB

=== Best: 1217050 req/s (CPU: 7006.1%, Mem: 812MiB) ===
[info] saved results/json-h2c/4096/true-async-server.json
httparena-bench-true-async-server
httparena-bench-true-async-server
[info] skip: true-async-server does not subscribe to baseline-h3
[info] skip: true-async-server does not subscribe to static-h3
[info] skip: true-async-server does not subscribe to gateway-64
[info] skip: true-async-server does not subscribe to gateway-h3
[info] skip: true-async-server does not subscribe to production-stack
[info] skip: true-async-server does not subscribe to unary-grpc
[info] skip: true-async-server does not subscribe to unary-grpc-tls
[info] skip: true-async-server does not subscribe to stream-grpc
[info] skip: true-async-server does not subscribe to stream-grpc-tls
[info] skip: true-async-server does not subscribe to echo-ws
[info] skip: true-async-server does not subscribe to echo-ws-pipeline
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-tls-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@EdmondDantes
Copy link
Copy Markdown
Contributor Author

/benchmark -f true-async-server --save

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

@EdmondDantes EdmondDantes marked this pull request as ready for review May 20, 2026 08:13
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: true-async-server | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 2,154,955 6712.0% 182MiB +2.6% -0.5%
baseline 4096 2,260,254 5871.2% 220MiB +2.2% ~0%
pipelined 512 8,993,883 6514.3% 150MiB +8.6% -0.7%
pipelined 4096 2,295,056 5949.5% 245MiB +3.5% +15.0%
limited-conn 512 1,610,019 6107.4% 157MiB NEW NEW
limited-conn 4096 1,798,930 6213.4% 165MiB NEW NEW
json 4096 983,908 6485.4% 264MiB -1.1% +1.9%
json-comp 512 445,036 5914.4% 175MiB -1.3% +0.6%
json-comp 4096 458,109 6227.8% 254MiB -1.5% ~0%
json-comp 16384 440,487 6499.7% 487MiB -0.3% -1.0%
json-tls 4096 782,380 6236.9% 627MiB -0.4% -14.3%
upload 32 2,583 1855.3% 302MiB ~0% -4.4%
upload 256 3,022 3622.3% 520MiB -1.0% +4.6%
api-4 256 56,308 394.0% 42MiB -2.4% -2.3%
api-16 1024 152,800 1574.7% 77MiB -0.4% -1.3%
static 1024 610,098 3161.7% 175MiB +2.0% -0.6%
static 4096 624,750 3262.3% 252MiB -0.7% +0.4%
static 6800 610,348 3199.6% 306MiB -0.5% -4.1%
async-db 1024 249,894 4917.3% 248MiB +0.7% +0.8%
fortunes 1024 88,584 6331.0% 224MiB -0.4% +0.9%
baseline-h2 256 4,969,431 7904.6% 225MiB +8.5% -0.9%
baseline-h2 1024 3,288,741 7207.5% 505MiB +9.2% +0.2%
static-h2 256 1,035,118 6423.3% 559MiB +0.5% -14.0%
static-h2 1024 830,382 6562.3% 2.3GiB +2.1% +15.0%
baseline-h2c 256 6,038,026 7082.3% 244MiB +5.7% ~0%
baseline-h2c 1024 3,991,541 7607.8% 528MiB +0.3% +10.0%
baseline-h2c 4096 3,753,829 7497.4% 1.5GiB +9.7% -6.3%
json-h2c 1024 1,232,194 7366.1% 319MiB ~0% +10.0%
json-h2c 4096 1,217,112 7258.8% 781MiB +0.8% +0.5%
Full log
[info] CPU 7366.1% | Mem 319MiB

[run 3/3]
starting benchmark...
Application protocol: h2c
.
51.
.
.
60.
.
44.
9Warm-up phase is over for thread #.
23.

40.

30.
0. Stopping all clients.
2. Stopping all clients.
59Stopped all clients for thread #44
17Main benchmark duration is over for thread #. Stopping all clients.
17Stopped all clients for thread #57

61. Stopping all clients.
. Stopping all clients.

finished in 5.06s, 1245773.40 req/s, 4.11GB/s
requests: 6228867 total, 6261635 started, 6228867 done, 6228867 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 6228867 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.53GB (22041084849) total, 11.89MB (12470022) headers (space savings 94.73%), 20.41GB (21916426613) data
                     min         max         mean         sd        +/- sd
time for request:      135us     48.15ms     25.66ms      7.90ms    69.74%
time for connect:       20us       934us       412us       223us    60.25%
time to 1st byte:     1.20ms     47.34ms     15.56ms      9.94ms    63.67%
req/s           :     703.93     2377.88     1216.48      332.19    69.24%
[info] CPU 7327.8% | Mem 331MiB

=== Best: 1232194 req/s (CPU: 7366.1%, Mem: 319MiB) ===
[info] saved results/json-h2c/1024/true-async-server.json
httparena-bench-true-async-server
httparena-bench-true-async-server

==============================================
=== true-async-server / json-h2c / 4096c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...

.

22.

.
.
Application protocol: h2c
4. Stopping all clients.
9. Stopping all clients.
49. Stopping all clients.

42
43. Stopping all clients.Main benchmark duration is over for thread #
51Stopped all clients for thread #36
. Stopping all clients.
43

24
46. Stopping all clients.

finished in 5.10s, 1218680.00 req/s, 4.01GB/s
requests: 6093400 total, 6224472 started, 6093400 done, 6093400 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 6093400 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.07GB (21544845029) total, 11.67MB (12235952) headers (space savings 94.72%), 19.95GB (21422653445) data
                     min         max         mean         sd        +/- sd
time for request:     2.37ms    349.12ms    107.24ms     25.04ms    85.68%
time for connect:       16us      6.53ms      2.69ms      1.95ms    55.54%
time to 1st byte:     7.98ms    354.45ms    145.01ms     60.44ms    71.31%
req/s           :     236.64      417.99      297.42       39.53    64.99%
[info] CPU 6733.8% | Mem 699MiB

[run 2/3]
starting benchmark...
progress: Main benchmark duration is started for thread #62.
75% of clients started

.
Application protocol: h2c
58.
62. Stopping all clients.

38Main benchmark duration is over for thread #. Stopping all clients.Stopped all clients for thread #2

35Stopped all clients for thread #. Stopping all clients.
32



58. Stopping all clients.
43Main benchmark duration is over for thread #. Stopping all clients.21

39

finished in 5.10s, 1241455.20 req/s, 4.09GB/s
requests: 6207276 total, 6338348 started, 6207276 done, 6207276 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 6207276 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.44GB (21948667362) total, 11.89MB (12463704) headers (space savings 94.72%), 20.33GB (21824198258) data
                     min         max         mean         sd        +/- sd
time for request:     2.36ms    250.91ms    102.11ms     21.23ms    82.90%
time for connect:       16us      7.72ms      2.72ms      1.87ms    56.42%
time to 1st byte:     8.84ms    248.67ms     70.82ms     41.27ms    75.24%
req/s           :     223.81      524.76      302.97       42.20    74.83%
[info] CPU 7258.8% | Mem 781MiB

[run 3/3]
starting benchmark...

Application protocol: h2c
.Main benchmark duration is started for thread #14.

.Warm-up phase is over for thread #58.

38.
11.
20.
49.
59.
Process Request Failure:2
26
36. Stopping all clients.
42. Stopping all clients.
5158. Stopping all clients.Stopped all clients for thread #
24Stopped all clients for thread #56
. Stopping all clients.


finished in 5.09s, 1237092.80 req/s, 4.07GB/s
requests: 6185465 total, 6316536 started, 6185465 done, 6185464 succeeded, 1 failed, 1 errored, 0 timeout
status codes: 6185464 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 20.37GB (21872614127) total, 11.84MB (12420080) headers (space savings 94.72%), 20.25GB (21748581040) data
                     min         max         mean         sd        +/- sd
time for request:     1.49ms    276.88ms    102.58ms     24.26ms    84.12%
time for connect:       16us      6.14ms      2.36ms      1.65ms    58.52%
time to 1st byte:     3.36ms    271.24ms     72.56ms     46.05ms    72.63%
req/s           :     153.65      441.41      301.95       39.63    73.17%
[info] CPU 7043.0% | Mem 814MiB

=== Best: 1217112 req/s (CPU: 7258.8%, Mem: 781MiB) ===
[info] saved results/json-h2c/4096/true-async-server.json
httparena-bench-true-async-server
httparena-bench-true-async-server
[info] skip: true-async-server does not subscribe to baseline-h3
[info] skip: true-async-server does not subscribe to static-h3
[info] skip: true-async-server does not subscribe to gateway-64
[info] skip: true-async-server does not subscribe to gateway-h3
[info] skip: true-async-server does not subscribe to production-stack
[info] skip: true-async-server does not subscribe to unary-grpc
[info] skip: true-async-server does not subscribe to unary-grpc-tls
[info] skip: true-async-server does not subscribe to stream-grpc
[info] skip: true-async-server does not subscribe to stream-grpc-tls
[info] skip: true-async-server does not subscribe to echo-ws
[info] skip: true-async-server does not subscribe to echo-ws-pipeline
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-tls-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@MDA2AV MDA2AV merged commit 03b0225 into MDA2AV:main May 20, 2026
@EdmondDantes EdmondDantes deleted the fix-h3-startup-v2 branch May 20, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants